

#字典的创建
a = dict(one=1, two=2, three=3)
b = {'one': 1, 'two': 2, 'three': 3}
c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
d = dict([('two', 2), ('one', 1), ('three', 3)])
e = dict({'three': 3, 'one': 1, 'two': 2})
f = dict({'one': 1, 'three': 3}, two=2)
print(a, b)
print(a == b, a == c, a == d, a == e, a == f)
#输出：{'one': 1, 'two': 2, 'three': 3} {'one': 1, 'two': 2, 'three': 3} {'one': 1, 'three': 3, 'two': 2}
#True True True True True

#fromkeys()
#创建一个新字典，以序列seq中元素做字典的键，value为字典所有键对应的初始值。
seq = ('Google', 'Baidu', 'Taobao')
dict1 = dict.fromkeys(seq)
print(dict1)
#输出：{'Google': None, 'Baidu': None, 'Taobao': None}
dict2 = dict.fromkeys(seq, 1)
print(dict2)
#输出：{'Google': 1, 'Baidu': 1, 'Taobao': 1}

# clear() 清空
b = {'one': 1, 'two': 2, 'three': 3}
b.clear()
print(b)

# get() 取值
b = {'one': 1, 'two': 2, 'three': 3}
print(b.get("one"))
print(b.get("four"))
#输出：1
# None

#  keys() 以列表返回一个字典所有的键
dict1 = {'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}
print(dict1.keys())
#输出：dict_keys(['name', 'age', 'address'])
#转换成列表['name', 'age', 'address']
li = list(dict1.keys())
print(li)
#输出：['name', 'age', 'address']

#values() 返回字典中所有键对应的值
dict1 = {'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}
print(dict1.values())
#输出：dict_values(['Alice', 23, 'Hangzhou'])
#转换成列表
li = list(dict1.keys())
print(li)
#输出：['name', 'age', 'address']

# items() 列表返回可遍历的(键, 值) 元组数组
dict1 = {'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}
item = dict1.items()
print(item)
#输出：dict_items([('name', 'Alice'), ('age', 23), ('address', 'Hangzhou')])

# pop 删除
dict1 = {'name':'Alice','age':23,'address':'Hangzhou'}
dict1.pop('age')
print(dict1)
#输出：{'name': 'Alice', 'address': 'Hangzhou'}

#  update() 更新字典的键-值对,将参数中字典中的键值对更新到字典中，此方法无返回值
dict1 = {'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}
dict1.update({'age': 80})
print(dict1)
#输出：{'name': 'Alice', 'age': 80, 'address': 'Hangzhou'}

#其他支持
a = {'name': 'Alice', 'age': 23, 'address': 'Hangzhou'}
# len(d)
print(len(a))
# d[key] 返回 d 中以 key 为键的项。如果映射中不存在 key 则会引发 KeyError。
print(a['name'])
#d[key] = value 将 d[key] 设为 value
a['name'] = '小明'
print(a)
#输出： {'name': '小明', 'age': 23, 'address': 'Hangzhou'}
#del d[key] 删除key 如果映射中不存在 key 则会引发 KeyError。
del a['address']
print(a)
#输出：{'name': '小明', 'age': 23}
#  key in d 如果 d 中存在键 key 则返回 True，否则返回 False
print('name' in a)
#输出：True
# iter(d) 返回以字典的键为元素的迭代器。这是 iter(d.keys()) 的快捷方式。
d = iter(a)
print(list[iter(a)])




